home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er 1989 July
/
64er_Magazin_89-07_1989_Markt__Technik_de_Side_A.d64
/
teil 2.listing 3
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
2KB
|
67 lines
10 .ba 49152 ;programmstart
20 .gl irqvec = $0314 ;irq-vektor
30 .gl irqalt = $ea31 ;alte irq-routine
40 .gl vic = $d000 ;basisadresse des vic
50 .gl irqmask= vic+26 ;irq-maskenregister
60 .gl irqflag= vic+25 ;irq-requestregister
70 .gl raster = vic+18 ;rasterzeilenregister
80 .gl border = vic+32 ;rahmenfarbe-register
90 .gl oben = 100 ;obere rasterzeile
100 .gl unten = 200 ;untere rasterzeile
110 .gl hibit = vic+17 ;bit 8 der rasterzeilennummer
120 ;
200 init sei;irq sperren
210 lda#oben;irq fuer rasterzeile 100
220 staraster
230 ldahibit;bit 8 loeschen
240 and#127
250 stahibit
260 lda#129;irq maskieren
270 stairqmask;raster-irq
280 lda#<(irqneu);irq-vektor auf neue
290 ldx#>(irqneu);irq-routine stellen
300 stairqvec
310 stxirqvec+1
320 cli;irq wieder zulassen
330 rts;und zurueck...
340 ;
350 deinit sei;irq sperren
360 lda#0;alle bits im masken-
370 stairqmask;register loeschen
380 lda#<(irqalt);vektor auf alte
390 ldx#>(irqalt);irqroutine stellen
400 stairqvec
410 stxirqvec+1
420 cli;irq wieder zulassen
430 lda#14;normale rahmenfarbe
440 staborder;einstellen
450 rts;und zurueck...
460 ;
470 irqneu ldairqflag;vic-irq-flags lesen
480 stairqflag;und wieder schreiben
490 bmivicirq;wenn bit 7 gesetzt, dann vicirq
500 jmpirqalt;sonst zur alten irq-routine
510 ;
520 vicirq ldaraster;rasterzeilenregister lesen
530 cmp#unten;groesser/gleich 200 ?
540 bcsoldcolor;ja, dann alte ramenfarbe
550 ;
560 newcolor lda#6;sonst neue rahmenfarbe
570 staborder
580 lda#unten;naechster irq bei zeile 200
590 staraster
600 ;
610 irqreturn pla;register zurueckholen
620 tay
630 pla
640 tax
650 pla
660 rti;und mit rti zurueck...
670 ;
680 oldcolor lda#14;alte ramenfarbe
690 staborder
700 lda#oben;naechster irq bei zeile 100
710 staraster
720 jmpirqreturn;und irq beenden...
60000 .en